Method for dialog control of voice-operated information and call information services incorporating computer-supported telephony

ABSTRACT

A method provides customer with simple and flexible dialog control and faster access to the desired information. In response to a customer call, a control program for dialog control created with the aid of a graphical editor as a flow chart is started, once access authorization is checked. All of the computer-supported telephony (CTI) information input modules and information output modules provided within the framework of the dialog control service in question, which are subject to continuous monitoring, are simultaneously made available in parallel to the customer via a control module for controlling the resources. The customer can actively intervene in the dialog already during the welcome via the information input modules allocated to him. The dialog commences again at the place designated by the customer. The method is suitable for at least information, news and connection services which are based on very significant parallelism and which are configured for mass telephony.

SPECIFICATION

1. Field of Invention

A method according to the present invention relates to dialog controlbetween a customer and voice-operated information, news and connectionservices which are provided as services by service providers andimplemented using computer-supported telephony.

2. Background Information

Voice-processing systems, particularly in the telecommunications sector,are becoming increasingly popular. In the United States, many suchautomatic information, news and connection services are part of everydaylife. As a result, a number of companies, whose products are based onvoice-processing technology, have already established themselves in thismarket. In implementing such services, the software components, withtheir run-time system and dialog editor, are very important.

Methods and systems for controlling automatic telephone dialogs haveexisted for about twenty years now. In this context, various basicarchitectures are distinguished, such as:

Systems and methods which exclusively control the voice data stream, asis, e.g., in telephone exchanges; and

Systems and methods which process the voice data stream themselves.

Systems and methods which process the voice data stream themselves areoriented to the dialog between user and machine. The more closely amethod or system conceived in this manner approaches human dialogbehavior and human interaction, the more effective it becomes. Ofcourse, such methods or systems can also control telephone calls, i.e.,dial, switch and so on. The method steps used here correspond to theprocedure of a human user when calling.

These kinds of approaches have evolved in steps, from systems that areprogrammed on a completely individual basis to systems that areprogrammable in an application-oriented manner using scriptinglanguages.

Currently existing systems are characterized by:

Text-based scripting languages that are close to the hardware;

Graphical description languages that were added on subsequently to thescripting languages;

Representation of the dialog as a strictly hierarchically structuredexecution sequence for general usage or as rule-based linguistic systemsfor use in research;

Implementation close to hardware for specific components in a closedsystem world;

Sequential development processes with poor test and correctionpossibilities; and

Complexity of the created applications due to lack of structuring meansin the application definition.

PCT International Application No. 96 05685 describes a scripting systemor rather a scripting method which offers a graphical user interfacewhich enables the user to create, process and execute telephone scriptsfor use by an agent in the provision of information to a customer. Inthe system, a graphical WINDOWS_(R) user interface is used for definingthe fields within a script and the interrelations of the fields. Theindividual fields contain action objects such as a dialog for use with acustomer and possible responses to customer questions. The system allowsthe user to create dialogs that contain information gathered from adatabase. Thus, each script is formed substantially in real-time in acustomer-specific manner and contains data that relate to the individualcustomer and the agent which is in dialog with the customer. Additionalaction objects such as customer responses lead to the script branchingoff in different directions that are determined by the user. The systemcan be implemented either with a main computer or a number ofworkstation computers of the agents or it can be implemented in anetwork in which the scripts are contained in a network server and theagent workstations are coupled to the network.

European Patent No. 0 664 635 describes an automatic ordering system incommunications switching stations. A voice recognizer is connected tothe connection to an order server provided within the switching system.The voice recognizer recognizes individual keywords from the voiceutterances made by a user via a calling connection instrument andstimulates a dialog control located in the order server. The dialogcontrol controls in response a call number memory, a call numbercorresponding to the recognized keyword being read out which is used toestablish a connection to a position taking this order.

In each case, these systems exhibit serious defects with respect toindividual parameters. Systems having a sophisticated dialog languageare usually highly hardware-dependent or require very significantcomputing expenditure. See Proceedings of Eurospeech “93” 2(3), CT.943-946 “Dialogue Design Principles”.

Systems having an architecture designed for significant parallelism andmass telephony are difficult to modify in terms of their architectureand, moreover, are very rigid in their dialog behavior. See Rabiner,Applications of Voice Processing to. Telecommunications Proceedings ofthe IEEE, vol. 82, no. 2, February 1994.

SUMMARY OF THE INVENTION

An object of the present invention is to delineate a method forcontrolling the hardware component used for the dialog betweenuser/machine that is suitable for operating voice-operated information,news and connection services incorporating computer-supported telephony(CTI). The method should be suitable, in particular, for information,news and connection services that are based on very significantparallelism and are oriented towards mass telephony, and thearchitecture underlying the method should be easily expandable anddeveloped with flexible dialog control, so that rapid access by thecustomers to the desired information is possible.

The method according to the present invention is implemented using acontrol program created by a service developer with the aid of agraphical editor in the form of a flow chart, in which the user/machinedialog control provides an execution routine such that simultaneousparallel control of all information input modules and information outputmodules involved within the framework of the concrete service offeringin the querying and in the information exchange with the customer, andthe individual switching off and an orderly resetting of all modules nolonger needed within the framework of the querying and the informationexchange with the customer are possible.

The control program designed as a flow chart is based on the descriptionof the desired dialogs for the information exchange between user andmachine with the aid of actions and previously described subdialogs bydefining sequences of actions, indicating parallel actions within adialog and defining general event handlings, interpreting the describeddialogs on a computer system with a control module for controlling theresources which provides an S.100 interface/S.300 interface, theinterpretation being performed in parallel as often as necessaryindependent of the number of telephone lines.

The control program/flow chart created according to the above principlesis integrated into the console management of a servicesupplier/provider.

When a call from a customer is present at the service supplier,following successful identification of the customer with respect to thesystem of the service supplier via the control program/flow charttailored to the respective application, all CTI information inputmodules and CTI information output modules that the customer needs forinformation and for communication with the system and particularly forinput of the customer's wish for information are started so that theyare simultaneously available to the customer.

As CTI modules, the following are understood in the sense of the presentinvention:

Modules for outputting information to the customer (information outputmodules) and

Modules for inputting information or rather the customer's wishes intothe system (information input modules).

CTI modules, include, for example:

Voice recognition modules/ASR modules

Voice output modules

Fax modules

Telephony modules

Voice verification modules.

As information output modules for outputting information to thecustomer, e.g., recorded announcements, players (for example) in whichindividually controllable recorded announcements are stored aresuitable. Information input modules for inputting customer wishes canbe, for example, keyboards or modules for voice recognition.

For determining the customer wishes in the user/machine dialog, forexample, a module for active voice recognition (ASR module) is startedand likewise made available to the customer in parallel to the other CTImodules. The flow chart is designed such that the customer can activelyinterrupt during the welcome a recorded announcement executing as aninterrogation routine with customer information that is played by avoice output module formed as a player for outputting recordedannouncements by expressing the customer's information wish via theinput possibilities available to the customer, preferably voice. Via thevoice recognition module following in parallel, this wish is receivedand compared with stored information. If a wish is recognized, e.g.,using a keyword uttered by the customer, the recorded announcement isimmediately interrupted, controlled via the control program/flow chart,and the information output module reset. The control program/flow chartis designed such that in the case in which one of the parallel connectedCTI modules is triggered/addressed or actuated by the customer, allparallel connected CTI modules are reset and switched off. If theinformation input by the customer is already sufficient to determine theinformation desired by the customer, then the desired information isprovided to the customer. This can take place, for example, in anannouncement service via voice output to the customer.

If the information input hitherto by the customer is not yet sufficientto determine the information desired by the customer, the interrogationroutine is reactivated via the control program/flow chart, again all CTImodules involved in the customer query, as previously described, arerestarted in parallel and made available to the customer. Theinformation output module, e.g., a player, is started in the place ofthe recorded announcement that is based on the information alreadyreceived by the customer in the aim of making this more precise. In thisplace also, the customer can again interrupt the execution process ofthe interrogation routine by inputting further information, making thecustomer's information wish more precise. Then after inputtinginformation of the customer recognized as valid via the voicerecognition module (ASR module), all other parallel active CTI modulesare again orderly reset and switched off.

The dialog is continued according to the above principles until theinformation desired by the customer can be determined. Reaction canoccur globally or specifically in the dialog to abort conditions of theCTI modules or to premature aborting through customer input, this beingenabled in the editor through a global dialbox.

In an embodiment according to the present invention, a method isexplained in greater detail based on the description of a dialog betweena customer and a computer-telephony-based enquiry and informationservice of a service supplier/service provider. The embodiment isintended to be merely illustrative and is not intended to limit thescope of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows basic structure of a dialog system according to the presentinvention.

FIG. 2 shows structure for a dialog system of an information serviceaccording to the present invention.

FIG. 3 shows a flow chart illustrating an example of a dialog between acustomer and the dialog system of the information service according tothe present invention.

DETAILED DESCRIPTION

In FIG. 1, a dialog system according to the present invention includesin an as a dialog agent and represents the current interpretation of adialog. The application layer is connected via an S.100 interface to thecontrol module assigned to the control layer for controlling theresources. The control layer is connected via an S.300 interface to thenetwork and resource layer, including the CTI information output modulesand the CTI information input modules.

FIG. 2 shows an embodiment for an information service of a serviceprovider according to the present invention.

The control program/flow chart includes as an application theapplication program for an information service. The control module forcontrolling the resources is connected to the telephone interfacemodules, ASR module for voice recognition, DTMF modules (Dual ToneMulti-Frequency) and players, the players being designed as informationoutput modules and the ASR modules and DTMF modules as information inputmodules. The connection to the customer is established via the telephoneinterface module.

Based on the flow chart according to FIG. 3, the dialog of a customerwith the system is explained hereafter in greater detail.

If a customer calls the service number of the service supplier/provider,following establishment of the connection and successful identificationof the customer with respect to the system of the service supplier, theinformation service is automatically started via the controlprogram/flow chart of the application layer. Here, according to thepresent invention, the output module player 1 as well as the inputmodules ASR module and DTMF module provided within the framework of theinformation service are simultaneously started in parallel and connectedvia the telephone interface to the customer. The states of theinformation input modules and information output modules simultaneouslyavailable in parallel to the customer are subject to continuousmonitoring. Via player 1, a welcome text, e.g., “Welcome to the infolineof company “X” . . . ” is output to the customer.

The customer has the possibility, starting from the moment when theinformation input and information output modules are available to him,of actively intervening via the ASR module or the DTMF modules in thedialog control since the states of the information input and informationoutput modules are continuously monitored.

Corresponding to the selected example, multiple possibilities arise forthe customer for active shaping of the dialog within the framework ofthe information service selected by the customer.

A customer who takes advantage of the information service for the firsttime will normally listen to the welcome text output via player 1 to theend. In this case, after the end of the welcome text the ASR module andthe DTMF module are halted and reset. A player 2 is started via which afurther information text is output to the customer indicating theinformation contents, e.g., information about products, services or newinfos, offered within the framework of the information service.

A customer who has already taken advantage of the information service anumber of times can actively intervene in the dialog control during theexecution of the welcome text since the customer generally is familiarwith all the subjects offered within the framework of the informationservice. Thus, the customer can interrupt the welcome text with a voiceinput, e.g., the word “Products”. The word entered by the customer viavoice is compared via the ASR module with the words allowable forinterrupting the welcome text and recognized as allowable. Via thecontrol module for controlling the resources, player 1, the ASR moduleand the DTMF modules are reset and switched off. Player 3, whichcontains information about the product palette for company X, e.g., ontelephones and fax machines, is started and connected through to thecustomer. Simultaneously with player 3, the ASR module and the DTMFmodules are started again in parallel and switched through to thecustomer. The customer can choose the desired product from the productpalette and input his wish via voice information. The desiredinformation is output to the customer via player 3.

A further possibility for the customer to intervene in the dialog isprovided by additionally offering the customer a function via which hecan manually, e.g., by actuating a key on his telephone or his PC,intervene in the dialog. In the embodiment shown in FIG. 3, the customercan intervene in the dialog via voice input as well as manually bykeystroke by pressing a telephone key. Manual input via telephone key oreven via the keyboard of a computer is provided particularly for thecase in which the customer has difficulties and wants a connection to anoperator. If the customer, e.g., during the execution of the welcometext, presses the key on his telephone to which a corresponding functionwas assigned, this is recognized via the DTMF module. Prior to startingplayer 4 which contains the information about the connection to theoperator, player 1 and the ASR module are halted and reset. The customeris automatically connected to the operator after output of the voiceinformation of player 4.

The dialog system structured for control of the dialog according to theprinciples of

a) description of the desired dialogs with the aid of actions andalready described dialogs by defining sequences of actions, indicatingparallel actions within a dialog, defining general event handlings, and

b) parallel interpretation of the described dialogs, as often as useful,independent of the number of telephone lines, can be further increasedin terms of its effectiveness.

A particular clarity and simple handling of the dialog execution areachieved particularly if the desired dialogs are described graphically.

The application range of the dialog can be increased by describingdialogs with subdialogs which can be incorporated via a subdialog actioninto other dialogs.

Another embodiment of the dialog control according to the presentinvention includes parallel interpretations (telephone agents) of thedialogs and can communicate amongst one another and exchange data. Ifdialogs are described with subdialogs which can be incorporated via asubdialog action into other dialogs, it is advantageous if eachsubdialog action is automatically compared with the associated subdialogwith regard to the entry and exit events as well as the parameters.

Moreover, it is advantageous to provide a possibility to be able to testdialogs graphically and interactively and resolve errors.

Particularly for use by multiple different users, it is advantageous ifthe individual actions can be documented.

A further provided simplification in the application includesconfiguring the actions with the aid of parameters. It is alsoadvantageous to process voice data directly within the graphicaldevelopment environment.

With very extensive applications, there is the possibility to controlthe interpretation of the dialogs with the aid of a network managementprotocol via a computer network.

The interpretation of the dialogs for the implementation of the methodaccording to the present invention takes place according to thefollowing algorithm:

1. A global variable table is created.

2. The dialog is loaded, i.e., the file with the dialog description isread and based on the content a network of action objects is set up. Theindividual action objects contain the parameters defined by the user, alist of entry events, a list of exit events, a boolean variable whetherthis action is parallel and for this case a parallel exit. Moreover, thethree work functions for entering into the action, waiting on events andexiting the action are stipulated by the type of action.

3. After activation of the dialog, for each desired dialog agent aparallel interpretation of the dialog is started which is described inthe following steps. Each agent acts substantially independent of theparallel active agents. The overall system can at any time be extendedby further agents or terminated after termination of all agents. Thetermination of an agent can also be compelled from outside by setting atermination flag for this agent (smart shutdown). If the overall systemis to be terminated, all agents are first terminated.

4. For this dialog agent, i.e., the current interpretation of thisdialog, a connection to the S.100/S.300 server is established anddepending on the CTI module requirements, a wait is made for thetransfer of a CTI module, e.g., through a telephone call.

5. The start of the first subdialog is searched for, the list of currentdialog states is emptied and then filled with a dialog state set up forthis start.

6. The points 7.-9. are processed in a loop until all dialog states arelocated in a terminal state. Then, all dialog states are cleared and theinterpretation re-commenced with point 5, in case at least once a waitsituation was passed through in steps 7-xx. Otherwise, theinterpretation is terminated within the framework of this dialog agent.

7. Each dialog state is checked in sequence:

i. If it is in the “Exiting” state, then a termination flag is set whichinitiates the termination of the entire dialog interpretation (smartshutdown).

ii. If it is in the “Progressing” state, then the exit function of theassociated action is first executed. Then, the exit conditions arechecked and the suitable exit event selected. The computation determinesthe subsequent action and its entry event and modifies the data in thedialog state accordingly. In the now current action, the entry functionis executed and then for this dialog state the current step 7 repeated

 Peculiarities:

a) For SUBDIAL/START actions, a new variable space is created for localvariables and there a reference is entered to the superordinate variablespace and the calling SUBDIAL action.

b) For RETURN actions, all dialog states are checked whether they ortheir calling predecessors use the same local variable space. In thiscase, one is dealing with parallel operations that are terminated withthis return action. For this purpose, in these dialog states the stateis set to “Aborting” and the respective abort functions of theassociated actions are called. Then, the parameters are transferred intothe local variables of the calling dialog, the local variable structurereleased and upon exit the calling SUBDIAL action continued.

c) For STOP actions, the state is set to “Exiting”.

i. If the dialog state is in the “Wait Event” state, all exit conditionsof this state are checked. If one of them is true, for the currentdialog state the subsequent state is determined as described under i.

ii. If the dialog state is in the “Waiting” state and the terminationflag is set, then the “Aborting” state is set and the abort function ofthe associated action is called.

iii. Otherwise, the dialog state remains untouched.

8. If the termination flag is set and all states are in a terminalstate, then the interpreter is terminated. For this purpose, the datastructures of the variables are no removed and any open connections tothe S.100/S.300 system or to databases, etc. are terminated and then thedata structures of this agent entry are cleared.

9. If one of the dialog states is in the “Waiting” state, then it is nowwaited for an external event (from S.100/S.300, timer, other agent,other process) of a CTI module and as soon as this occurs all dialogstates are checked in sequence until an event handling function of anassociated action confirms the processing of the event message byreturning a positive truth value.

10. If the process of interpretation is to be externally controlled,then a global termination flag can be set which under step 7 causes thetermination of all active dialog states by setting the termination flagand executing the abort function. The interpreter runs until all dialogstates are in a terminal state, i.e., the state “Terminated”, or havecleared themselves.

The working principle underlying the flow chart of the dialog system ischaracterized by a graphical, user-friendly architecture with anintegrated run-time environment for massively parallelcomputer-supported telephony. Some conceptional parts of the flow chartinclude the construction according to a class hierarchy which contains,on the one hand, dialog processes and, on the other hand, graphical anddescriptive elements, the structuring of the dialog descriptions inpages, the support for libraries, the integration of the voice dataprocessing and the system architecture based on the S.100/S.300 standardwith the input and output modules for integration of the componentseditor, debugger and runtime as well as further auxiliary components.

What is claimed is:
 1. A method for controlling a dialog of at least oneof voice-operated information, news and connection servicesincorporating computer-supported telephony, comprising the steps of:checking access authorization in response to a call; after checkingaccess authorization, starting a control program for dialog control, thedialog control program being created, via a graphical editor, as a flowchart; If controlling the dialog via a server-controlled operation usinga speaker-independent voice recognition module, the voice recognitionmodule responding to key words; interpreting the dialog of the controlprogram by (1) describing a desired dialog with aid of at least one ofan action and a previously described subdialog by at least one ofdefining sequences of actions, indicating parallel actions within thedialog and defining general event handlings, and (2) interpreting inparallel on a computer system at least one of the described dialog anddialog steps, the interpreting in parallel being repeated as often asuseful and being independent of number of telephone lines, the computersystem including a control module having an S.100 interface and an S.300interface; activating a control module via the control program; makingsimultaneously available in parallel, via the activated control module,computer-supported telephony (CTI) information input modules and CTIinformation output modules applicable for a particular query routine,the input modules and the output modules being subject to continuousstate monitoring; logically linking a recorded announcement to the flowchart via the output modules, the recorded announcement including aquery routine and operating information, the recorded announcement beingautomatically started and outputted; inputting information via at leastone of the input modules made simultaneously available in parallel, theinputting occurring at least one of during and after outputting of theoperating information via output modules; comparing the inputtedinformation with information contents permitted in the particular queryroutine; halting and resetting the input modules and the output modulesmade simultaneously available in parallel if the inputted informationcompared is acceptable to the control module; if the inputtedinformation is insufficient to output desired information, then: againmaking simultaneously available in parallel, via the activated controlmodule and the control program, input modules and output modulesapplicable for the particular query routine, outputting the recordedannouncement via the output modules, the recorded announcement takinginto account previously inputted information, at least one of activelyinterrupting the outputting of the recorded announcement by inputtingadditional information to further determine the desired information andwaiting until the after completion of the outputting of the recordedannouncement before inputting additional information to furtherdetermine desired information, and halting and resetting the inputmodules and the output modules again made simultaneously available inparallel if the additional inputted information includes informationacceptable to the control module; and terminating the dialog if at leastone of inputted information is sufficient to output the desiredinformation and an abort command is triggered via the input modules. 2.The method according to claim 1, further comprising the step of:establishing a connection to an operator of a service provider via thecontrol module, the control module at least one of being triggered byand recognizing at least one of a particular inputted key word and anactuated key on a terminal.